﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class DanhMuc_ChuongTrinhDaoTao : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            drlTenLop.DataSource = PageURL.GetListChuongTrinhDaoTao();
            drlTenLop.DataTextField = "TenChuongTrinh";
            drlTenLop.DataValueField = "ID";
            drlTenLop.DataBind();
            BindGrid();
        }
    }
    protected void btnsave_Click(object sender, EventArgs e)
    {
        if (txtID.Value == "")
        {
            if (txttungay.Text == "" || txtdenngay.Text == "" || txtNgayKhaiGiang.Text == "")
            {
                lblstatus.Text = "Nhập đầy đủ thông tin trước khi lưu.";
                return;
            }
            int tungayso = CatalogAccess.DoiNgaySangSoTinhTu1930(CatalogAccess.ConvertToDate(txttungay.Text));
            int denngayso = CatalogAccess.DoiNgaySangSoTinhTu1930(CatalogAccess.ConvertToDate(txtdenngay.Text));
            int ngaykhaigiangso = CatalogAccess.DoiNgaySangSoTinhTu1930(CatalogAccess.ConvertToDate(txtNgayKhaiGiang.Text));
            if (tungayso >= denngayso)
            {
                lblstatus.Text = "Thời gian học từ ngày phải nhỏ hơn đến ngày!.";
                return;
            }
            if (ngaykhaigiangso < tungayso || ngaykhaigiangso >= denngayso)
            {
                lblstatus.Text = "Ngày khai giảng phải nằm trong khoảng thời gian từ ngày đến ngày!.";
                return;
            }
            string doituong = "";
            if (chkcosodoan.Checked == true)
            {
                doituong += chkcosodoan.ToolTip + "@";
            }
            if (chkdoancoso.Checked == true)
            {
                doituong += chkdoancoso.ToolTip + "@";
            }
            if (chkchidoancoso.Checked == true)
            {
                doituong += chkchidoancoso.ToolTip + "@";
            }
            if (chkchidoan.Checked == true)
            {
                doituong += chkchidoan.ToolTip + "@";
            }
            _dbDataContext _db = new _dbDataContext();
            tblDaoTao _tb = new tblDaoTao();
            _tb.TenLopID = int.Parse(drlTenLop.SelectedValue.ToString());
            _tb.ThoiGianDaoTaoTu = CatalogAccess.ConvertToDate(txttungay.Text);
            _tb.ThoiGianDaoTaoDen = CatalogAccess.ConvertToDate(txtdenngay.Text);
            _tb.NgayKhaiGiang = CatalogAccess.ConvertToDate(txtNgayKhaiGiang.Text);
            _tb.NgayHetHanDangKy = CatalogAccess.ConvertToDate(txtNgayHetHanDangKy.Text);
            _tb.DoiTuongThamGia = doituong;
            _tb.DonViToChuc = MemberShip_ASP.GetMaDonViFromUserName(this.Page.User.Identity.Name);
            _tb.GhiChu = txtGhiChu.Text;
            try
            {
                _db.tblDaoTaos.InsertOnSubmit(_tb);
                _db.SubmitChanges();
                lblstatus.Text = "Đã lưu thành công!";
                BindGrid();
            }
            catch { lblstatus.Text = "Không lưu được!"; }
            txtID.Value = "";
        }
        else
        {
            if (txttungay.Text == "" || txtdenngay.Text == "" || txtNgayKhaiGiang.Text == "")
            {
                lblstatus.Text = "Nhập đầy đủ thông tin trước khi lưu.";
                return;
            }
            int tungayso = CatalogAccess.DoiNgaySangSoTinhTu1930(CatalogAccess.ConvertToDate(txttungay.Text));
            int denngayso = CatalogAccess.DoiNgaySangSoTinhTu1930(CatalogAccess.ConvertToDate(txtdenngay.Text));
            int ngaykhaigiangso = CatalogAccess.DoiNgaySangSoTinhTu1930(CatalogAccess.ConvertToDate(txtNgayKhaiGiang.Text));
            if (tungayso >= denngayso)
            {
                lblstatus.Text = "Thời gian học từ ngày phải nhỏ hơn đến ngày!.";
                return;
            }
            if (ngaykhaigiangso < tungayso || ngaykhaigiangso >= denngayso)
            {
                lblstatus.Text = "Ngày khai giảng phải nằm trong khoảng thời gian từ ngày đến ngày!.";
                return;
            }
            string doituong = "";
            if (chkcosodoan.Checked == true)
            {
                doituong += chkcosodoan.ToolTip + "@";
            }
            if (chkdoancoso.Checked == true)
            {
                doituong += chkdoancoso.ToolTip + "@";
            }
            if (chkchidoancoso.Checked == true)
            {
                doituong += chkchidoancoso.ToolTip + "@";
            }
            if (chkchidoan.Checked == true)
            {
                doituong += chkchidoan.ToolTip + "@";
            }
            _dbDataContext _db = new _dbDataContext();
            var _tb = _db.tblDaoTaos.Single(r=>r.ID==int.Parse(txtID.Value));
            _tb.TenLopID = int.Parse(drlTenLop.SelectedValue.ToString());
            _tb.ThoiGianDaoTaoTu = CatalogAccess.ConvertToDate(txttungay.Text);
            _tb.ThoiGianDaoTaoDen = CatalogAccess.ConvertToDate(txtdenngay.Text);
            _tb.NgayKhaiGiang = CatalogAccess.ConvertToDate(txtNgayKhaiGiang.Text);
            _tb.NgayHetHanDangKy = CatalogAccess.ConvertToDate(txtNgayHetHanDangKy.Text);
            _tb.DoiTuongThamGia = doituong;
            _tb.DonViToChuc = MemberShip_ASP.GetMaDonViFromUserName(this.Page.User.Identity.Name);
            _tb.GhiChu = txtGhiChu.Text;
            try
            {
                _db.SubmitChanges();
                lblstatus.Text = "Đã lưu thành công!";
                BindGrid();
            }
            catch { lblstatus.Text = "Không lưu được!"; }
        }
    }
    protected void txttungay_TextChanged(object sender, EventArgs e)
    {
        lblstatus.Text = "";
    }
    private void BindGrid()
    {
        _dbDataContext _db = new _dbDataContext();
        var list = from p in _db.tblDaoTaos.Where(r=>r.DonViToChuc.Trim()==MemberShip_ASP.GetMaDonViFromUserName(this.Page.User.Identity.Name))
                   select new
                   {
                       ID=p.ID,
                       MaLop=p.TenLopID,
                       TuNgay=string.Format("{0:dd/MM/yyyy}",p.ThoiGianDaoTaoTu),
                       DenNgay = string.Format("{0:dd/MM/yyyy}", p.ThoiGianDaoTaoDen),
                       NgayKhaiGiang = string.Format("{0:dd/MM/yyyy}", p.NgayKhaiGiang),
                       NgayHetHanDangKy=string.Format("{0:dd/MM/yyyy}",p.NgayHetHanDangKy),
                       DoiTuongThamGia=p.DoiTuongThamGia,
                       GhiChu=p.GhiChu,
                       TenLop = p.TenLopID
                   };
        griddslop.DataSource = list.ToList();
        griddslop.DataBind();
        txtID.Value = "";
    }
    
    protected void griddslop_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "DeleteLopHoc")
        {
            _dbDataContext _db = new _dbDataContext();
            var list = _db.tblDaoTaos.Single(r => r.ID == int.Parse(e.CommandArgument.ToString()));
            try
            {
                _db.tblDaoTaos.DeleteOnSubmit(list);
                _db.SubmitChanges();
                BindGrid();
            }
            catch { }
        }
        else if (e.CommandName == "XemChiTiet")
        {
            drlTenLop.SelectedValue = ((Label)griddslop.Rows[int.Parse(e.CommandArgument.ToString())].FindControl("lblMaLopID")).Text;
            txttungay.Text = ((Label)griddslop.Rows[int.Parse(e.CommandArgument.ToString())].FindControl("lblTuNgay")).Text;
            txtdenngay.Text = ((Label)griddslop.Rows[int.Parse(e.CommandArgument.ToString())].FindControl("lblDenNgay")).Text;
            txtNgayKhaiGiang.Text = ((Label)griddslop.Rows[int.Parse(e.CommandArgument.ToString())].FindControl("lblNgayKhaiGiang")).Text;
            txtNgayHetHanDangKy.Text = ((Label)griddslop.Rows[int.Parse(e.CommandArgument.ToString())].FindControl("lblNgayHetHan")).Text;
            string[] st = ((Label)griddslop.Rows[int.Parse(e.CommandArgument.ToString())].FindControl("lblDoiTuongThamGia")).Text.Split('@');
            chkcosodoan.Checked = false;
            chkdoancoso.Checked = false;
            chkchidoancoso.Checked = false;
            chkchidoan.Checked = false;
            foreach (var item in st)
            {
                if (item == "CSD")
                {
                    chkcosodoan.Checked = true;
                }
                else if (item == "DCS")
                {
                    chkdoancoso.Checked = true;
                }
                else if (item == "CDC")
                {
                    chkchidoancoso.Checked = true;
                }
                else if (item == "CDD")
                {
                    chkchidoan.Checked = true;
                }
            }
            txtGhiChu.Text = ((Label)griddslop.Rows[int.Parse(e.CommandArgument.ToString())].FindControl("lblGhiChu")).Text;
            txtID.Value = griddslop.DataKeys[int.Parse(e.CommandArgument.ToString())].Value.ToString();
        }
    }
}